"""
- 深浅拷贝一般都是说的可变类型：set、list、dict（不可变类型在进行深浅拷贝时无意义-内部都不会去拷贝，永远是同一块内存地址）
    import copy

    v1 = "武沛齐"
    v2 = copy.copy(v1)
    print(id(v1))  # 140663937558640
    print(id(v2))  # 140663937558640
- 浅拷贝，只拷贝第一层的可变类型。
- 深拷贝，拷贝所有层的可变类型 + 元素中如果有可变类型，也会被拷贝。
"""

# 浅拷贝，针对可变类型只拷贝第一层，内部不可变类型&可变类型都不会被拷贝。
"""
import copy

v1 = ["武沛齐", "root", [44, 55]]
v2 = copy.copy(v1)

print(id(v1))  # 140370940277440
print(id(v2))  # 140370940279744

print(id(v1[2]))  # 140364497610864
print(id(v2[2]))  # 140364497610864
"""

# 深拷贝，对于可变类型无论在那一层都会被拷贝，不可变类型永远不会被拷贝。
"""
import copy

v1 = ["武沛齐", "root", [44, 55]]
v2 = copy.deepcopy(v1)

print(id(v1))  # 140541799775168
print(id(v2))  # 140541799773120

print(id(v1[0]))  # 140687559878768
print(id(v2[0]))  # 140687559878768

print(id(v1[2]))  # 140526364734720
print(id(v2[2]))  # 140526364882368
"""

# 特殊的：元组，不可变类型如果遇到
#    - 浅拷贝，永远不会拷贝。
#    - 深拷贝，当元素的元素中都是不可变类型时，永远不会拷贝；如果元素中有可变类型
import copy

v1 = (11, 22, [11, 22], 33)
v2 = copy.deepcopy(v1)
print(id(v1))
print(id(v2))
